package eteam.aps.service;

import eteam.aps.model.entity.ProductParam;
import eteam.aps.model.vo.ParamListVo;
import eteam.aps.model.vo.ParamVo;
import eteam.aps.model.vo.ProductParamVo;

import java.util.List;
import java.util.Map;
import java.util.Set;

public interface ProductParamService {

    /**
     * 新增产品参数
     * @param params 产品参数
     * @return 受影响的行数
     */
    int insert(List<ProductParam> params);

    /**
     * 根据fId逻辑删除产品参数
     * @param fId fId
     * @return 受影响的行数
     */
    int deleteByFDtlId(String fDtlId);

    /**
     * 根据fId物理删除产品参数
     * @param fId fId
     * @return 受影响的行数
     */
    int deleteByFId(String fId);

    /**
     * 修改产品参数子表
     * @param productParam 产品参数
     * @return 受影响的行数
     */
    int update(ProductParam productParam);

    /**
     * 根据主表fId查询所有产品参数子表数据
     * @param fDtlId 主表fId
     * @return 产品参数子表列表
     */
    List<ProductParamVo> selectAll(String fDtlId);

    /**
     * 根据主表fId统计参数子表编号数量
     * @param fDtlId 主表fId
     * @return 子表编号数量
     */
    int countCodeByFDtlId(Map<String,Object> map);

    /**
     * 查询所有的参数、字典信息
     * @return 参数、字典信息列表
     */
    Set<ParamListVo> selectParDd();

    /**
     * 查询字典编号列表
     * @return 字典编号列表
     */
    Set<ParamVo> selectDdInfo(String paramCode);
}
